﻿@*Libraries*@
@using System.Net.Http
@using System.Net.Http.Json
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.AspNetCore.Components.WebAssembly.Http
@using Microsoft.JSInterop
@using Microsoft.AspNetCore.Identity;
@using MudBlazor
@using Blazored.LocalStorage;
@using Blazored.FluentValidation

@*Client Services*@
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Identity.Account
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Identity.Authentication
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Identity.Roles
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Identity.RoleClaims
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Identity.Users
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Preferences
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Interceptors
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Catalog.Product
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Catalog.Brand
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Dashboard
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Communication
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Audit
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Misc.Document
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.Misc.DocumentType

@*Shared Libraries*@
@using BlazorHero.CleanArchitecture.Shared.Constants.Permission
@using BlazorHero.CleanArchitecture.Client.Shared.Components

@using BlazorHero.CleanArchitecture.Client
@using BlazorHero.CleanArchitecture.Client.Shared
@using BlazorHero.CleanArchitecture.Client.Shared.Dialogs
@using BlazorHero.CleanArchitecture.Client.Infrastructure.Settings

@using BlazorHero.CleanArchitecture.Application.Requests.Identity

@using BlazorHero.CleanArchitecture.Client.Pages.Authentication

@using BlazorHero.CleanArchitecture.Client.Infrastructure.Authentication
@using BlazorHero.CleanArchitecture.Client.Extensions

@attribute [Authorize]
@inject IAuthenticationManager _authenticationManager
@inject IAccountManager _accountManager
@inject NavigationManager _navigationManager
@inject BlazorHeroStateProvider _stateProvider
@inject IAuthorizationService _authorizationService
@inject ISnackbar _snackBar
@inject IDialogService _dialogService
@inject HttpClient _httpClient
@inject IHttpInterceptorManager _interceptor
@inject ClientPreferenceManager _clientPreferenceManager
@inject IUserManager _userManager
@inject ILocalStorageService _localStorage;
@inject IJSRuntime _jsRuntime;